/*
 * SerialSession.cpp
 *
 * @author Bematech S.A.
 */

#include "bilbao/protocol/serial/SerialSession.h"

namespace bilbao
{
	namespace protocol
	{
		namespace serial
		{
			SerialSession* SerialSession::_instance = NULL;
			//--------------------------------------------------------------------------------
			// Construtor e destrutor
			//--------------------------------------------------------------------------------
			SerialSession::SerialSession( void )
			{
				// Do nothing
			}
			//--------------------------------------------------------------------------------
			SerialSession::~SerialSession( void )
			{
				// Do nothing
			}
			//--------------------------------------------------------------------------------
			SerialSession* SerialSession::getInstance( void )
			{
				if ( !_instance )
					_instance = new SerialSession();

				return _instance;
			}
			//--------------------------------------------------------------------------------
			ASerialResponse::E_SERIAL_RESPONSE_ID SerialSession::querySerialSession(
					long int serialSession )
			{
				// TODO: Pesquisar no banco o status do número de sessão
				return ASerialResponse::CONS_NUM_SESSAO_SUCESSO;
			}
			//--------------------------------------------------------------------------------
			void SerialSession::setSerialSession( long int serialSession,
					ASerialResponse::E_SERIAL_RESPONSE_ID state )
			{
				// TODO: Alterar no banco o status do número de sessão correspondente
			}
			//--------------------------------------------------------------------------------
			bool SerialSession::addSerialSession( long int serialSession )
			{
				//TODO: mudar isso
				if (/* _queueSerialSession.find( serialSession )*/true )
					return false;

				//_queueSerialSession.push( serialSession );
				// TODO: Inserir no banco o número de sessão
				return true;
			}
			//--------------------------------------------------------------------------------

		} // namespace serial
	} // namespace protocol
} // namespace bilbao
